//
//  TPImageView.h
//  Pods
//
//  Created by caixun on 15/11/4.
//
//

#import <UIKit/UIKit.h>


@class TPImageView;


/*!
 *  @author caixun, 15-11-04 10:11:53
 *
 *  @brief  定制的UIButton，用于获取发起点击事件的imageview
 *
 *  @since v1.0
 */
@interface TPImageViewBtn : UIButton

// button所添加到的GMBImageView示例，用于点击事件时获取imageview
@property (nonatomic, weak) TPImageView *imgv;


@end


/*!
 *  @author caixun, 15-11-04 10:11:09
 *
 *  @brief  ImageView的基类
 *
 *  @since v1.0
 */
@interface TPImageView : UIImageView

// 扩展属性，携带字典参数
@property (nonatomic, strong) NSMutableDictionary *mdicParam;


#pragma mark - ********************************** 初始化方法 工厂方法 *********************************

#pragma mark - 初始化基本设置
// 初始化基本设置
+ (instancetype)getWithFrame:(CGRect)frame;
+ (instancetype)getWithFrame:(CGRect)frame image:(UIImage *)img;


#pragma mark - ********************************** 初始化方法 实例方法 *********************************

#pragma mark - 初始化基本设置
// 初始化基本设置
- (instancetype)initWithFrame:(CGRect)frame
                        image:(UIImage *)img;

// 添加点击事件
- (void)addTarget:(id)target action:(SEL)selAction;


#pragma mark - *********************************** 设置属性 实例方法 **********************************
// 设置圆角
- (void)setCornerRadius:(CGFloat)fltCornerRadius
            borderWidth:(CGFloat)fltBorderWidth
            borderColor:(UIColor *)colorBorder;


#pragma mark - ************************************** 加载网络图片 ***********************************

#pragma mark - 下载图片，delegate形式

// 加载网络图片
- (void)setImageURL:(NSString *)strImgUrl;

#pragma mark - 下载图片，Block形式

// 加载网络图片，设置成功和失败Block回调
- (void)setImageURL:(NSString *)strImgUrl
            success:(void (^)(UIImage *image))success
            failure:(void (^)(NSError *error))failure;


#pragma mark - ************************************** 加载图片设置 ***********************************

// 设置是否显示占位图片,默认为YES
- (void)setIsShowPlaceholderImg:(BOOL)isShowPlaceholderImg;

// 设置下载网络图片时的占位图片，不设置时会在初始化时根据frame大小选择一个合适尺寸的图片(default_49_11.png/default_97_21.png)
- (void)setPlaceholderImage:(UIImage *)imgPlaceholder;

// 设置占位图的填充模式
- (void)setPlaceholderImgContentMode:(UIViewContentMode)placeholderImgContentMode;

// 设置下载错误图片，不设置时不显示
- (void)setErrorImage:(UIImage *)imgError;

// 设置图片显示模式(contentMode),设置时不要调用系统的setContentMode,下载完成后会使用commonContentMode设置
- (void)setCommonContentMode:(UIViewContentMode)commonContentMode;

// 取消当前图片下载
- (void)cancelCurrentImageLoad;


@end
